/**
 * @author Roger Wu
 */
(function($) {
	$.fn.dialogDrag = function(options) {
		if (typeof options == 'string') {
			if (options == 'destroy')
				return this.each(function() {
							var dialog = this;
							$("div.dialogHeader", dialog).unbind("mousedown");
						});
		}
		return this.each(function() {
					var dialog = $(this);
					$("div.dialogHeader", dialog).mousedown(function(e) {
								$.pdialog.switchDialog(dialog);
								dialog.data("task", true);
								setTimeout(function() {
											if (dialog.data("task"))
												$.dialogDrag.start(dialog, e);
										}, 100);
								return false;
							}).mouseup(function(e) {
								dialog.data("task", false);
								return false;
							});
				});
	};
	$.dialogDrag = {
		currId : null,
		_init : function(dialog) {
			this.currId = new Date().getTime();
			var shadow = $("#dialogProxy");
			if (!shadow.size()) {
				shadow = $(DWZ.frag["dialogProxy"]);
				$("body").append(shadow);
			}
			$("h1", shadow).html($(".dialogHeader h1", dialog).text());
		},
		start : function(dialog, event) {
			this._init(dialog);
			var sh = $("#dialogProxy");
			sh.css({
						left : dialog.css("left"),
						top : dialog.css("top"),
						height : dialog.css("height"),
						width : dialog.css("width"),
						zIndex : parseInt(dialog.css("zIndex")) + 1
					}).show();
			$("div.dialogContent", sh).css("height",
					$("div.dialogContent", dialog).css("height"));
			sh.data("dialog", dialog);
			dialog.css({
						left : "-10000px",
						top : "-10000px"
					});
			$(".shadow").hide();
			$(sh).jDrag({
						selector : ".dialogHeader",
						stop : this.stop,
						event : event
					});
			return false;
		},
		stop : function() {
			var sh = $(arguments[0]);
			var dialog = sh.data("dialog");
			$(dialog).css({
						left : $(sh).css("left"),
						top : $(sh).css("top")
					});
			$.pdialog.attachShadow(dialog);
			$(sh).hide();
		}
	}
})(jQuery);